/*
 * @Author: FXQ
 * @Date: 2020-12-01
 */
import store from '@/store'
// import { getToken, getMenu } from '@/utils/auth.js'
import Layout from '@/layout'
var gotRouter
// 初始化路由
export const initRouter = (list) => {
  // if (!getToken()) {
  //   return
  // }
  // var routerData
  // routerData = getMenu() // 本地缓存拿取路由
  gotRouter = filterAsyncRouter(list) // 过滤路由,路由组件转换
  store.commit('permission/SET_ROUTES', gotRouter) // 更新路由
  return gotRouter
}

// @函数: 遍历后台传来的路由字符串，转换为组件对象
export const filterAsyncRouter = (list) => {
  const res = []
  list.filter(item => {
    item.frontPath = item.frontPath.trim()
    if (item.displayTitle !== '首页') {
      const obj = {
        path: item.frontPath, // url路径
        name: item.displayTitle, // 名称
        meta: { title: item.displayTitle }, // meta内容
        alwaysShow: false
      }
      // 惰性递归 ****
      if (item.frontComponent === 'Layout') {
        obj.component = Layout // 父组件载入layout
        obj.meta.icon = item.icon // 图标
        obj.alwaysShow = item.children.length === 1
      } else {
        // 惰性递归 ****
        const data = item.frontComponent // 组件地址
        // 三层子集
        if (item.children && item.children.length > 0) {
          obj.component = ''
        } else {
          // 这里需要改成自己定义的 .vue 路径
          obj.component = resolve => require([`@/views${data}`], resolve)
          // obj.component = () => import('@/views' + data)
        }
      }
      // 判断是否有子集,有子集回调函数
      if (item.children && item.children.length > 0) {
        obj.children = filterAsyncRouter(item.children)
      }
      res.push(obj)
    }
  })
  return res
}
